package br.com.rentalcar.domain;

import java.util.Date;

public class Reserva {

	Date dtRetirada;
	String horaRetirada;
	Date dtDevolucao;
	String horaDevolucao;
	Cliente cliente;
	Categoria categoriaCarro;
	Funcionario funcionario;
	Double multaDesistencia;
	Double desconto;

	public Reserva() {

	}

	public Date getDtRetirada() {
		return dtRetirada;
	}

	public void setDtRetirada(Date dtRetirada) {
		this.dtRetirada = dtRetirada;
	}

	public String getHoraRetirada() {
		return horaRetirada;
	}

	public void setHoraRetirada(String horaRetirada) {
		this.horaRetirada = horaRetirada;
	}

	public Date getDtDevolucao() {
		return dtDevolucao;
	}

	public void setDtDevolucao(Date dtDevolucao) {
		this.dtDevolucao = dtDevolucao;
	}

	public String getHoraDevolucao() {
		return horaDevolucao;
	}

	public void setHoraDevolucao(String horaDevolucao) {
		this.horaDevolucao = horaDevolucao;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Categoria getCategoriaCarro() {
		return categoriaCarro;
	}

	public void setCategoriaCarro(Categoria categoriaCarro) {
		this.categoriaCarro = categoriaCarro;
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	public Double getMultaDesistencia() {
		return multaDesistencia;
	}

	public void setMultaDesistencia(Double multaDesistencia) {
		this.multaDesistencia = multaDesistencia;
	}

	public Double getDesconto() {
		return desconto;
	}

	public void setDesconto(Double desconto) {
		this.desconto = desconto;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((desconto == null) ? 0 : desconto.hashCode());
		result = prime * result
				+ ((dtDevolucao == null) ? 0 : dtDevolucao.hashCode());
		result = prime * result
				+ ((dtRetirada == null) ? 0 : dtRetirada.hashCode());
		result = prime * result
				+ ((funcionario == null) ? 0 : funcionario.hashCode());
		result = prime * result
				+ ((horaDevolucao == null) ? 0 : horaDevolucao.hashCode());
		result = prime * result
				+ ((horaRetirada == null) ? 0 : horaRetirada.hashCode());
		result = prime
				* result
				+ ((multaDesistencia == null) ? 0 : multaDesistencia.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Reserva other = (Reserva) obj;
		if (desconto == null) {
			if (other.desconto != null)
				return false;
		} else if (!desconto.equals(other.desconto))
			return false;
		if (dtDevolucao == null) {
			if (other.dtDevolucao != null)
				return false;
		} else if (!dtDevolucao.equals(other.dtDevolucao))
			return false;
		if (dtRetirada == null) {
			if (other.dtRetirada != null)
				return false;
		} else if (!dtRetirada.equals(other.dtRetirada))
			return false;
		if (funcionario == null) {
			if (other.funcionario != null)
				return false;
		} else if (!funcionario.equals(other.funcionario))
			return false;
		if (horaDevolucao == null) {
			if (other.horaDevolucao != null)
				return false;
		} else if (!horaDevolucao.equals(other.horaDevolucao))
			return false;
		if (horaRetirada == null) {
			if (other.horaRetirada != null)
				return false;
		} else if (!horaRetirada.equals(other.horaRetirada))
			return false;
		if (multaDesistencia == null) {
			if (other.multaDesistencia != null)
				return false;
		} else if (!multaDesistencia.equals(other.multaDesistencia))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Reserva [dtRetirada=" + dtRetirada + ", horaRetirada="
				+ horaRetirada + ", dtDevolucao=" + dtDevolucao
				+ ", horaDevolucao=" + horaDevolucao + ", cliente=" + cliente
				+ ", categoriaCarro=" + categoriaCarro + ", funcionario="
				+ funcionario + ", multaDesistencia=" + multaDesistencia
				+ ", desconto=" + desconto + "]";
	}

}
